package com.my.dubbo.consumer;

import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.ReferenceConfig;
import com.alibaba.dubbo.config.RegistryConfig;
import com.my.dubbo.provider.service.ProviderService;

/**
 * api的方式调用
 * api的方式调用不需要其他的配置，只需要下面的代码即可。
 * 但是需要注意，官方建议：
 * Api方式用于测试用例使用，推荐xml的方式
 */
public class DubboConfigUseApi {

	public static void main(String[] args) {
		// 当前应用配置
		ApplicationConfig application = new ApplicationConfig();
		application.setName("consumer");
		application.setOwner("ztq");
		//application.setQosEnable(true);
		application.setQosPort(6555);
		
		// 连接注册中心配置
		RegistryConfig registryConfig = new RegistryConfig();
		registryConfig.setAddress("zookeeper://10.25.174.21:2181");
		
		// 引用远程服务
		ReferenceConfig<ProviderService> referenceConfig = new ReferenceConfig<ProviderService>();
		referenceConfig.setApplication(application);
		referenceConfig.setRegistry(registryConfig);
		referenceConfig.setInterface(ProviderService.class);
		//版本号要跟提供者一致，否则会找不到这个服务
		//版本号不一样，会被当作两个服务
		referenceConfig.setVersion("1.0.0");
		
		// 和本地bean一样使用xxxService
		ProviderService providerService = referenceConfig.get();
		System.out.println(providerService.sayHello("hello dubbo, api start"));
	}

}
